package cn.iocoder.yudao.module.yyzx.dal.mysql.bed_manage;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.yyzx.dal.dataobject.bed.BedDO;
import cn.iocoder.yudao.module.yyzx.dal.dataobject.customer.CustomerDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.yyzx.controller.admin.bed_manage.vo.*;
import org.apache.ibatis.annotations.Param;

/**
 * 床位信息 Mapper
 *
 * @author 超级管理员
 */
@Mapper
public interface Bed_ManageMapper extends BaseMapperX<BedDO> {

    BedRespVO selectByRecordId(@Param("id") Integer id);

    default PageResult<BedPageReqVO> selectPage(BedPageReqVO reqVO) {
        return selectJoinPage(
                reqVO,BedPageReqVO.class,new MPJLambdaWrapper<BedDO>()
                        .select(BedDO::getBedId,BedDO::getRoomNumber,BedDO::getName)
                        .select(CustomerDO::getCustomerId,CustomerDO::getRecordId,CustomerDO::getCustomerName,CustomerDO::getCustomerSex,CustomerDO::getCheckinDate,CustomerDO::getExpirationDate)
                        .leftJoin(CustomerDO.class,CustomerDO::getBedId,BedDO::getBedId)
                        .eqIfExists(CustomerDO::getCustomerName,reqVO.getCustomerName())
        );
    }

}